/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BL;

import BE.BELineaCardex;
import BE.BEUsuario;
import DA.DACardex;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JTable;

/**
 *
 * @author hunter2409
 */
public class BLCardex {

    public static BEUsuario getObjUsuario() {
        return objUsuario;
    }

    public static void setObjUsuario(BEUsuario aObjUsuario) {
        objUsuario = aObjUsuario;
    }
    
    ArrayList<BELineaCardex> lstCardex;
    DACardex dtaCardex;
    private static BEUsuario objUsuario;
    
    
    public BLCardex()
    {
        lstCardex= new ArrayList<BELineaCardex>();
        dtaCardex= new DACardex();
    }
    
    public void cargarCardexProducto(int idProducto)
    {
        lstCardex = dtaCardex.cargarCardex(idProducto);
    }
    
    public int obtenerExistencias()
    {
        int existencias=0;
        
        for (BELineaCardex lin:lstCardex)
        {
            existencias= existencias + lin.getCantIngreso() - lin.getCantSalida();
        }
        
        return existencias;
    }
    
    public void guardarInternamiento(BELineaCardex objLineaCardex, int idPallet)
    {
        dtaCardex.guardarInternamiento(objLineaCardex,idPallet);
    }
    
    public void guardarTranslado(BELineaCardex objLineaCardex, int idPallet)
    {
        dtaCardex.guardarTranslado(objLineaCardex,idPallet);
    }
    
    public void guardarDespacho(BELineaCardex objLineaCardex, int idPallet)
    {
        dtaCardex.guardarDespacho(objLineaCardex,idPallet);
    }
    
    
  
    
    public void llenaTabla (ResultSet rs, JTable tblCardex)
    {
        //DAContacto daContacto = new DAContacto();

        BLModelo modelo = new BLModelo();
        tblCardex.setModel(modelo);
       
        //modelo.addColumn("CódigoCardex");
        modelo.addColumn("Fecha");
        modelo.addColumn("Cod. Pallet");
        modelo.addColumn("Cod. Producto");
        modelo.addColumn("Producto");
        modelo.addColumn("Tipo Movimiento");
        modelo.addColumn("Cantidad");
        modelo.addColumn("Origen Rack/Fil/Col");
        modelo.addColumn("Destino Rack/Fil/Col");

        try
        {
            while (rs.next())
            {
                Object [] fila = new Object[8];
                Object  origen = new Object();
                Object  destino = new Object();
                BLReportes blReportes = new BLReportes();
                
                //fila[0] = rs.getObject("idcardex");
                fila[0] = rs.getObject("fecha");
                fila[1] = rs.getObject("idpallet");
                fila[2] = rs.getObject("idproducto");
                fila[3] = rs.getObject("nombre");
                fila[4] = rs.getObject("detalle");
                fila[5] = rs.getObject("cantidad");
                origen = rs.getObject("origen");
                fila[6] = blReportes.generarUbicacion(origen);
                destino = rs.getObject("destino");
                fila[7] = blReportes.generarUbicacion(destino);
                
                
                modelo.addRow(fila);
                
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Error al llenar la tabla","Error",JOptionPane.ERROR_MESSAGE);
        }
    }

    public JTable llenarCardex(int codigo, int codigo2, Date date, Date date0, JTable tblKardex) {
     DACardex dACardex = new DACardex();
        ResultSet rs = null;
        JTable result = null;     
        rs = dACardex.buscarCardex(codigo,codigo2,date, date0);
        this.llenaTabla(rs, tblKardex);
        return tblKardex; 
        
    }

  
}
